In numerous applications in signal processing, it is desired to determine the frequency spectra, or component frequencies, of time domain signals. This is done by sampling the signal at a predetermined sampling rate over an interval or window of time T.sub.0, yielding a series of data points which represent the signal. The component frequencies of the signal are then determined from the data points through a Fourier transform operation, most often a modulo 2 fast Fourier transform, or FFT, which transforms data series whose points number a power of two.
A significant limitation in determination of the spectra of signals is that data can only be collected, recorded, and processed for a finite length of time. The length of T.sub.0 is limited by recording and processing capacity. If data is recorded for long intervals and processed in real time, processing capacity requirements are higher. If the data is processed later, storage requirements are higher. In some applications, T.sub.0 is also limited by the fact that decisions must be made quickly based on processing results, limiting the time available to sample the data.
Discrete Fourier transforms are limited to determining component frequencies which are periodic within the time interval T.sub.0. Since the limited length of T.sub.0 often causes component frequencies to be non-periodic, the transform distorts the true nature of the signal's frequency spectrum. This is referred to as frequency leakage, being characterized by peaks in the spectral function moving or "leaking" to greater or lesser frequencies, creating sidelobes or other distortions.
Leakage can be viewed as caused by the truncation of non-zero portions of the signal by the finite-length T.sub.0 window. The Fourier transform attempts to make up for the abrupt cutoffs at the ends of the window, creating frequencies in the spectral function which are not present in the original signal. In random signals, leakage is also caused by sampling the signal for a time T.sub.0 which excludes dissimilar portions of the signal outside T.sub.0.
The ideal window size exactly encompasses the beginning and ending of the signal. No leakage occurs in this case since the signal can be represented in the window by frequencies periodic in the window.
In the case of some transient signals, the ideal window is possible. A transient signal is one that begins at zero, remains non-zero for a finite length of time, then returns to zero and remains there. If a transient signal is short enough, the entire signal can be processed with no leakage. If available processing time and/or data memory are not capable of handling the entire non-zero signal, however, the window must be made shorter, thus truncating the non-zero portion of the signal and causing leakage in the spectral function.
Truncation and corresponding leakage is unavoidable in a random signal, since a random signal is one which has no beginning, no end, and does not repeat. In this case, leakage becomes less as T.sub.0 increases. Even continuous signals that are sums of pure sinusoids often also experience problems of leakage from the inability of a window to make all component frequencies periodic.
Leakage has been controlled in the prior art by multiplying one of various available windowing functions of T.sub.0 length to the series of sampled data points. In other words, each data point is weighted by the windowing function value at that point. Windowing functions control leakage in various ways depending on what is desired, one way being forcing the data point value toward zero at the end of the window to limit leakage of frequencies caused by truncation.
A simple boxcar windowing function (all data given equal weight) is applied to a transient signal which is untruncated within the time interval T.sub.0. If the transient signal is too long for the entire signal to be included in the interval T.sub.0, an exponential decay windowing function is often applied to artificially force the data points toward zero. The modified signal is Fourier transformed, and the spectral function of the original signal is projected based on the window function modifications.
The type of windowing function used with random signals is chosen according to the type of leakage control desired. Some spectral analysis programs automatically apply a certain type of windowing function to given types of signals, while others allow for some user selection.
Signals which are sums of pure sinusoids that are significantly seperated in frequency are often processed with a flat top windowing function to leak frequency components which are not periodic within the window to several adjacent spectral lines with the same amplitude. A flat top window function is one which ideally has a flat top shape in frequency space. The flat top windowing function in the prior art has been effective in reproducing the correct amplitude of a pure sinusoid, but has traditionally done so at the expense of severe leakage of frequency components to a band of frequencies, because of the limited window length in time space.
Once the linear frequency spectrum of the signal is determined from Fourier transform of the weighted data points, other spectra of interest such as energy spectra, power spectra, cross spectra, and combined spectra can be determined.
Each of the different windowing functions developed over the years control leakage to a certain extent and in certain ways, but no windowing function can eliminate leakage altogether for all signals. Leakage continues to be a problem in distorting the spectral function.
Resolution of the spectral function also depends on the length of the time window T.sub.0. The first spectral line in the function, representing a component frequency of the signal, will be at 0 Hz, representing the DC component of the signal. The first non-zero spectral line will be at f.sub.0 =1/T.sub.0, the second at 2f.sub.0 =2/T.sub.0, the third at 3f.sub.0 =3/T.sub.0, and so on to the Nyquist frequency, or one-half the sampling rate. The distance between spectral lines diminishes and resolution of the spectral function improves as T.sub.0 increases.